home *** CD-ROM | disk | FTP | other *** search
- /* Upper sub-layer (LAPB) definitions */
-
- /* Control field templates */
- #define I 0x00 /* Information frames */
- #define S 0x01 /* Supervisory frames */
- #define RR 0x01 /* Receiver ready */
- #define RNR 0x05 /* Receiver not ready */
- #define REJ 0x09 /* Reject */
- #define U 0x03 /* Unnumbered frames */
- #define SABM 0x2f /* Set Asynchronous Balanced Mode */
- #define DISC 0x43 /* Disconnect */
- #define DM 0x0f /* Disconnected mode */
- #define UA 0x63 /* Unnumbered acknowledge */
- #define FRMR 0x87 /* Frame reject */
- #define UI 0x03 /* Unnumbered information */
- #define PF 0x10 /* Poll/final bit */
-
- #define MMASK 7 /* Mask for modulo-8 sequence numbers */
-
- /* FRMR reason bits */
- #define W 1 /* Invalid control field */
- #define X 2 /* Unallowed I-field */
- #define Y 4 /* Too-long I-field */
- #define Z 8 /* Invalid sequence number */
-
- /* Per-connection link control block
- * These are created and destroyed dynamically,
- * and are indexed through a hash table.
- * One exists for each logical AX.25 Level 2 connection
- */
- struct ax25_cb {
- struct ax25_cb *next; /* Doubly linked list pointers */
- struct ax25_cb *prev;
-
- struct mbuf *txq; /* Transmit queue */
- struct mbuf *rxasm; /* Receive reassembly buffer */
- struct mbuf *rxq; /* Receive queue */
-
- struct ax25 addr; /* Address header */
-
- struct interface *interface; /* Associated interface */
-
- char rejsent; /* REJ frame has been sent */
- char remotebusy; /* Remote sent RNR */
- char response; /* Response owed to other end */
-
- char vs; /* Our send state variable */
- char vr; /* Our receive state variable */
- char unack; /* Number of unacked frames */
- int maxframe; /* Transmit flow control level */
- int16 paclen; /* Maximum outbound packet size */
- int16 window; /* Local flow control limit */
- char proto; /* Protocol version */
- #define V1 1 /* AX.25 Version 1 */
- #define V2 2 /* AX.25 Version 2 */
- int16 pthresh; /* Poll threshold */
- unsigned retries; /* Retry counter */
- unsigned n2; /* Retry limit */
- int state; /* Link state */
- #define DISCONNECTED 0
- #define SETUP 1
- #define DISCPENDING 2
- #define CONNECTED 3
- #define RECOVERY 4
- #define FRAMEREJECT 5
- char frmrinfo[3]; /* I-field for FRMR message */
- struct timer t1; /* Retry timer */
- struct timer t2; /* Acknowledgement delay timer */
- struct timer t3; /* Keep-alive poll timer */
-
- void (*r_upcall)(); /* Receiver upcall */
- void (*t_upcall)(); /* Transmit upcall */
- void (*s_upcall)(); /* State change upcall */
- char *user; /* User pointer */
- };
- #define NULLAX25 ((struct ax25_cb *)0)
- extern struct ax25_cb ax25default;
- extern struct ax25_cb *ax25_cb[];
- #define NHASH 17
-
- #define YES 1
- #define NO 0
-